package es.us.lsi.daw.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

import es.us.lsi.daw.model.security.User;

public interface DAOPaginacion extends DAOComun {

	// Métodos genéricos

	public <T> List<T> getListaClasePaginacion(Class<T> clase, Long page);

	public <T> List<T> getListaClasePaginacion(Class<T> clase, Long page, String lstLista) throws DataAccessException;

	public <T> List<T> getListaClasePaginacion(Class<T> clase, Long page, String lstLista, Integer numMaxRegistros) throws DataAccessException;

	public <T> List<T> getListaClasePaginacionOrdenada(Class<T> clase, Long page, String atributo) throws DataAccessException;

	public long obtenerTamFiltroListUser(String nombre, String apellidos);

	public List<?> filtrarListUser(String nombre, String apellidos, Long numPagina, Integer numMaxRegistros);

	public Long getSizeUser(Class<User> clase);

	public List<?> getListaClasePaginacionUser(Class<User> clase, Long numPagina, String lista, Integer numMaxRegistros);

}
